/**
 * Copyright(c) 2014 Xunton Solutions
 *
 * History:
 *   15-3-17 上午9:27 Created by dwzhang
 */
package com.jade.bss.service.sms;

import com.jade.bss.base.BssException;

/**
 *
 *
 * @author <a href="mailto:dwzhang@xunton.com">dwzhang</a> 
 * @version 1.0 15-3-17 上午9:27
 */
public interface VerifyCodeManager
{
    /**
     * 生成并发送一个验证码到用户手机。需要判断用户发送的频率和周期。
     *
     * @param mobile 用户手机号码。
     * @return 生成的验证码。
     * @throws com.jade.bss.base.BssException 处理异常，包括发送过于频繁及其他错误。
     */
    public String sendVerifyCode(String mobile)  throws BssException;

    public String sendVerifyCode(String type, String mobile) throws BssException;

    /**
     * 验证用户输入的验证码。
     *
     * @param mobile 用户手机号码
     * @param verifyCode 用户输入的验证码
     * @return 验证通过，返回true；否则返回false
     * @throws com.jade.bss.base.BssException 处理异常
     */
    public boolean checkVerifyCode(String mobile, String verifyCode)   throws BssException;

    public boolean checkVerifyCode(String type, String mobile, String verifyCode)   throws BssException;
}
